﻿using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
namespace BPM.Web.Shared.Data;

/// <summary>
/// 代码生成表
/// </summary>
public partial class SysCodeGen : BaseVM
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [DisplayName("业务号")]
    [Required(ErrorMessage = "业务号不能为空")]
    [JsonPropertyName("id")]
    public long Id { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [DisplayName("创建时间")]
    [JsonPropertyName("createdTime")]
    public System.DateTimeOffset? CreatedTime { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    [DisplayName("更新时间")]
    [JsonPropertyName("updatedTime")]
    public System.DateTimeOffset? UpdatedTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    [DisplayName("创建者Id")]
    [JsonPropertyName("createdUserId")]
    public long? CreatedUserId { get; set; }

    /// <summary>
    /// 创建者名称
    /// </summary>
    [DisplayName("创建者名称")]
    [JsonPropertyName("createdUserName")]
    [StringLength(20)]
    public string? CreatedUserName { get; set; }

    /// <summary>
    /// 修改者Id
    /// </summary>
    [DisplayName("修改者Id")]
    [JsonPropertyName("updatedUserId")]
    public long? UpdatedUserId { get; set; }

    /// <summary>
    /// 修改者名称
    /// </summary>
    [DisplayName("修改者名称")]
    [JsonPropertyName("updatedUserName")]
    [StringLength(20)]
    public string? UpdatedUserName { get; set; }

    /// <summary>
    /// 作者姓名
    /// </summary>
    [DisplayName("作者姓名")]
    [JsonPropertyName("authorName")]
    [StringLength(20)]
    public string? AuthorName { get; set; }

    /// <summary>
    /// 是否移除表前缀
    /// </summary>
    [DisplayName("是否移除表前缀")]
    [JsonPropertyName("tablePrefix")]
    [StringLength(5)]
    public string? TablePrefix { get; set; }

    /// <summary>
    /// 生成方式
    /// </summary>
    [DisplayName("生成方式")]
    [JsonPropertyName("generateType")]
    [StringLength(20)]
    public string? GenerateType { get; set; }

    /// <summary>
    /// 数据库名
    /// </summary>
    [DisplayName("数据库名")]
    [JsonPropertyName("databaseName")]
    [StringLength(100)]
    public string? DatabaseName { get; set; }

    /// <summary>
    /// 数据库表名
    /// </summary>
    [DisplayName("数据库表名")]
    [JsonPropertyName("tableName")]
    [StringLength(100)]
    public string? TableName { get; set; }

    /// <summary>
    /// 命名空间
    /// </summary>
    [DisplayName("命名空间")]
    [JsonPropertyName("nameSpace")]
    [StringLength(100)]
    public string? NameSpace { get; set; }

    /// <summary>
    /// 程序集
    /// </summary>
    [DisplayName("程序集")]
    [JsonPropertyName("proName")]
    public string? ProName { get; set; }

    /// <summary>
    /// 业务名
    /// </summary>
    [DisplayName("业务名")]
    [JsonPropertyName("busName")]
    [StringLength(100)]
    public string? BusName { get; set; }

    /// <summary>
    /// 菜单应用分类（应用编码）
    /// </summary>
    [DisplayName("菜单应用分类（应用编码）")]
    [JsonPropertyName("menuApplication")]
    [StringLength(50)]
    public string? MenuApplication { get; set; }

    /// <summary>
    /// 菜单编码
    /// </summary>
    [DisplayName("菜单编码")]
    [JsonPropertyName("menuPid")]
    public long MenuPid { get; set; }

}
